با توجه به داده بانک جهانی به سوالات زیر پاسخ دهید. برای استفاده از داده از سه فایل زیر استفاده نمایید. داده نام کشورها: WDICountry داده نام سری های زمانی: WDISeries داده کل: WDIData در صورتی که داده را در اختیار ندارید می توانید از بسته WDI استفاده نموده و داده های مورد نظر را استخراج نمایید.
دادهها و کتابخانههای زیر در طول تمرین مورد استفاده قرارخواهندگرفت.
library(readr)
library(dplyr)
library(ggplot2)
library(highcharter)
wdi_data = read_csv('../../Data/WDI/WDIData.csv')۱. ده کشور فقیر دنیا را بیابید. نمودار درآمد روزانه آنها را رسم کنید. چند درصد از اعضای این کشورها زیر خط فقر هستند؟ متوسط عمر در این کشورها چقدر است؟
جواب: در این قسمت با توجه به موجود بودن دادهها دادهّها را استخراجکرده که در اینجا برای داشتن مقادیر خط فقر از سال ۲۰۱۴ استفادهکردم. نمودار فقیرترین ها نیز کشیدهشدهاست که حاصل درآمد متوسط آنها تقسیم تعداد روزهای سال است. مطلوبات سوال در جدولی کشیدهشدهاست.
income = wdi_data %>%
filter(`Indicator Code`== 'NY.ADJ.NNTY.CD') %>%
select(country_name = `Country Name`, income = `2016`)
poverty = wdi_data %>%
filter(`Indicator Code`== 'NY.GDP.PCAP.PP.CD') %>%
select(country_name = `Country Name`, poverty = `2016`)
poverty_line = wdi_data %>%
filter(`Indicator Code`== 'SI.POV.NAHC') %>%
select(country_name = `Country Name`, poverty_line = `2014`)
population = wdi_data %>%
filter(`Indicator Code`== 'SP.POP.TOTL') %>%
select(country_name = `Country Name`, population = `2016`)
life_expectancy = wdi_data %>%
filter(`Indicator Code`== 'SP.DYN.LE00.IN') %>%
select(country_name = `Country Name`, life_expectancy = `2016`)
poverty = merge(poverty,income)
poverty = merge(poverty,population)
poverty = merge(poverty,poverty_line)
poverty = merge(poverty,life_expectancy)
poverty = poverty %>%
arrange(poverty) %>%
slice(1:10) %>%
mutate(daily_income = income/(365*population))
ggplot(poverty, aes(x =reorder(country_name, daily_income), y = daily_income)) +
geom_bar(stat = "identity") +
ggtitle("Poorest Country Daily Income") +
xlab("Countries") +
ylab("Daily Income $") +
coord_flip()knitr::kable(poverty,"html")| country_name | poverty | income | population | poverty_line | life_expectancy | daily_income |
|---|---|---|---|---|---|---|
| Central African Republic | 698.7067 | 1374375431 | 4594621 | NA | 52.171 | 0.8195262 |
| Burundi | 777.7529 | 2122720795 | 10524117 | 64.9 | 57.481 | 0.5526044 |
| Congo, Dem. Rep. | 801.6301 | 26138587178 | 78736153 | NA | 59.621 | 0.9095259 |
| Liberia | 812.6739 | 1112973037 | 4613823 | 54.1 | 62.505 | 0.6608925 |
| Niger | 986.2070 | 6041624602 | 20672987 | 44.5 | 60.058 | 0.8006775 |
| Malawi | 1168.8256 | 3635417843 | 18091575 | NA | 63.223 | 0.5505352 |
| Mozambique | 1216.7928 | 8566275076 | 28829476 | 46.1 | 58.311 | 0.8140712 |
| Sierra Leone | 1476.2137 | 2676603250 | 7396190 | NA | 51.835 | 0.9914780 |
| Togo | 1490.5362 | 3020251309 | 7606374 | NA | 60.232 | 1.0878588 |
| Madagascar | 1506.2383 | 8910175309 | 24894551 | NA | 65.932 | 0.9805937 |
۲. تراژدی روآندا: بر اساس داده های امید به زندگی ابتدا نمودار سالانه نمودار جعبه ایی امید به زندگی کشورها را رسم نمایید(در یک نمودار!). سپس سری زمانی امید به زندگی روآندا را به آن اضافه کنید. چه می بینید؟ چند میلیون نفر کشته شدند؟
جواب: باتوجه به دادهها و مشخصکردن روآندا روی نمودار این فاجعهی انسانی بر روی این نمودار مشخصشده است. مجموع دقیق این کشتهها مشخصشدهاست و حدود یک میلیون برآورد میشود که بسیار وحشتناک است.
library(reshape2)
life_expectancy = wdi_data %>%
filter(`Indicator Code`== 'SP.DYN.LE00.IN') %>%
select(country_name = `Country Name`, matches('\\d\\d\\d\\d'))
le_long = melt(life_expectancy, id.vars=c('country_name'))
rwanda = le_long %>%
filter(country_name == 'Rwanda')
ggplot(le_long,aes(x = variable, y = value)) +
geom_boxplot() +
coord_flip() +
geom_line(data = rwanda,aes(x = variable, y = value, group = 1, color = 'Rwanda')) +
ggtitle("Average Life Expectancy In Worldwide") +
xlab("Life Expectancy") +
ylab("Year")rwanda_death = wdi_data %>%
filter(`Indicator Code`== 'SP.DYN.CDRT.IN') %>%
select(country_name = `Country Name`, matches('\\d\\d\\d\\d')) %>%
filter(country_name == 'Rwanda')
rd_long = melt(rwanda_death, id.vars=c('country_name'))
death = rd_long %>%
summarise(Death = sum(value, na.rm = TRUE)*1000)
knitr::kable(death,"html")| Death |
|---|
| 1053185 |
۳. نمودار امید به زندگی و هزینه های بهداشتی را رسم کنید. چه نتیجه ایی می گیرید؟
جواب: هرچه هزینههای درمانی افزا یشیافته، اهمیت سلامتی به نظر من و طول عمر به تبع از روی نمودار افزایش یافتهاست.
life_expectancy = wdi_data %>%
filter(`Indicator Code`== 'SP.DYN.LE00.IN') %>%
select(country_name = `Country Name`, matches('\\d\\d\\d\\d'))
le_long = melt(life_expectancy, id.vars=c('country_name'))
le_long = le_long %>%
select(country_name,variable,value) %>%
mutate(ind = 'Life Expectancy')
ggplot(le_long,aes(x = variable, y = value)) +
geom_boxplot() +
coord_flip() +
ggtitle("Average Life Expectancy In Worldwide") +
xlab("Life Expectancy") +
ylab("Year")health_cost = wdi_data %>%
filter(`Indicator Code`== 'SH.XPD.CHEX.PC.CD') %>%
select(country_name = `Country Name`, matches('\\d\\d\\d\\d'))
hc_long = melt(health_cost, id.vars=c('country_name'))
hc_long = hc_long %>%
select(country_name,variable,value) %>%
mutate(ind = 'Health Cost')
ggplot(hc_long,aes(x = variable, y = value)) +
geom_boxplot() +
coord_flip() +
ggtitle("Average Health Cost In Worldwide") +
xlab("Health Cost") +
ylab("Year")hc_le = rbind(le_long, hc_long)
ggplot(hc_le,aes(x = variable, y = value, col=ind, fill=ind)) +
geom_boxplot() +
coord_flip() +
ggtitle("Average Health Cost & Life Expectancy In Worldwide") +
xlab("HC & LE") +
ylab("Year")۴. آیا قدرت خرید خانواده های ایرانی در ۵۰ سال اخیر افزایش یافته است؟ برای این کار از داده های اقتصادی خانوار استفاده کنید.
جواب: باتوجه به دادههای موجود این مقدار افزایشیافته البته در مقطعی کاهش نیز مشاهدهمیشود ولی به طور کلی افزایش توان خرید را شاهد هستیم. البته بایستی تورم را نیز لحاظ کرد و این ارقام اطلاع دقیقی به ما نمیدهند.
ppp = wdi_data %>%
filter(`Indicator Code`== 'NY.GDP.PCAP.PP.CD') %>%
select(country_name = `Country Name`, matches('\\d\\d\\d\\d')) %>%
filter(country_name == 'Iran, Islamic Rep.')
ppp_long = melt(ppp, id.vars=c('country_name'))
ggplot(ppp_long, aes(x =variable, y = value)) +
geom_bar(stat = "identity") +
ggtitle("Purchasing power parity in Iran") +
xlab("Year") +
ylab("PPP $") +
coord_flip()۵. رشد اقتصادی ایران را با کشورهای دیگر در طول ۲۰ سال گذشته بر حسب بیست شاخص های اقتصادی مهم مانند تولید ناخالص ملی، تورم و … ارزیابی کنید! (برای هر شاخص از تصویرسازی استفاده کنید.)
جواب: باتوجه به بیمقدار بودن اکثر متغیرها متغیرهای موجود در این حوزه را شناسایی و تصویرسازی کردهام. اسامی این شاخصها در لجند نمودارها موجودند.
economic = wdi_data %>%
filter(grepl('NE.EXP.GNFS.CD|NY.GDP.PCAP.CD|NY.GNP.MKTP.CD|NE.GDI.FTOT.KD.ZG|BX.KLT.DINV.CD.WD|BM.GSR.GNFS.CD|BN.GSR.FCTY.CD|FP.CPI.TOTL.ZG|FM.LBL.BMNY.GD.ZS|NV.AGR.TOTL.ZS|NE.CON.TETC.ZS|NE.CON.GOVT.ZS|NV.IND.MANF.ZS|MS.MIL.XPND.GD.ZS|TG.VAL.TOTL.GD.ZS|NY.GDP.TOTL.RT.ZS|NE.TRD.GNFS.ZS|FS.AST.DOMS.GD.ZS|NY.GNP.MKTP.PP.CD|SH.UHC.NOP1.TO', `Indicator Code`)) %>%
select(country_name = `Country Name`, indicator_name = `Indicator Name`, matches('^199[6-9]|^20[0-1][0-9]'))
ec_long = melt(economic, id.vars=c('country_name','indicator_name'))
iran_ec = economic %>%
filter(country_name == 'Iran, Islamic Rep.')
ec_ir_long = melt(iran_ec, id.vars=c('country_name','indicator_name'))
ec_ir_long = ec_ir_long %>%
group_by(indicator_name)
box_eco = ec_long %>%
group_by(indicator_name) %>%
do(
plots = ggplot(.,aes(x = variable, y = value, color = indicator_name))+
geom_boxplot() +
coord_flip() +
geom_line(data = subset(.,country_name == 'Iran, Islamic Rep.'),aes(x = variable, y = value, group = 1, color = 'Iran, Islamic Rep.'))
)
box_eco$plots[[1]]
[[2]]
[[3]]
[[4]]
[[5]]
[[6]]
[[7]]
[[8]]
[[9]]
[[10]]
[[11]]
[[12]]
[[13]]
[[14]]
[[15]]
[[16]]
[[17]]
[[18]]
[[19]]
[[20]]
۶. در قسمت قبل با استفاده از روش خوشه بندی k-means داده ها را به سه دسته تقسیم کنید. ایران در کدام دسته می گنجد؟ (پیش از خوشه بندی طبیعتا داده را باید پاکسازی و استاندارد سازی نمایید.)
جواب: ایران در دستهی سوم درکنار کشورهای درحال توسعه جای میگیرد.
set.seed(17)
eco_no_na = economic
eco_no_na[is.na(eco_no_na)] = 0
eco_no_na[,3:23] = scale(eco_no_na[,3:23])
eco_no_na = eco_no_na %>%
group_by(country_name) %>%
filter(!grepl("income|Euro|Asia|only|total|members|dividend|World|America|Middle|Sub|Africa",country_name)) %>%
summarise_all(mean)
clusters = kmeans(eco_no_na[,3:23], 3)
eco_no_na$cluster = as.integer(clusters$cluster)
country_cluster = eco_no_na %>%
select(country_name, cluster) %>%
filter(country_name == 'Iran, Islamic Rep.')
knitr::kable(country_cluster,"html")| country_name | cluster |
|---|---|
| Iran, Islamic Rep. | 3 |
str(clusters)List of 9
$ cluster : int [1:223] 3 3 3 3 3 3 3 3 3 3 ...
$ centers : num [1:3, 1:21] 0.6082 0.072 -0.0909 0.6348 0.0669 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:3] "1" "2" "3"
.. ..$ : chr [1:21] "1996" "1997" "1998" "1999" ...
$ totss : num 15.3
$ withinss : num [1:3] 0 1.13 0.956
$ tot.withinss: num 2.09
$ betweenss : num 13.3
$ size : int [1:3] 1 7 215
$ iter : int 3
$ ifault : int 0
- attr(*, "class")= chr "kmeans"
۷. به وسیله تحلیل مولفه اصلی بعد داده رو به دو کاهش دهید سپس خوشه های به دست آمده در قسمت قبل را بر روی آن نمایش دهید. آیا عملکرد روش خوشه بندی شما مطلوب بوده است؟
جواب: نتیجهی یکسانی بدستمیآید و میتوان خوشهبندی را معتبر دانست.
eco_pca = prcomp(eco_no_na[,3:23], scale. = TRUE)
x = eco_pca$x[,1:2]
eco_no_na = bind_cols(eco_no_na,as.data.frame(x))
clusters = kmeans(eco_no_na[,26:27], 3)
eco_no_na$cluster = as.integer(clusters$cluster)
country_cluster_pca_e = eco_no_na %>%
select(country_name, cluster) %>%
filter(country_name == 'Iran, Islamic Rep.')
knitr::kable(country_cluster_pca_e,"html")| country_name | cluster |
|---|---|
| Iran, Islamic Rep. | 3 |
۸. با استفاده از داده روشی برای پیش بینی رشد اقتصادی ایران در سال آینده ارائه دهید.
جواب: از رگرسیون خطی بهرهبردهام که سال آخر را با توجه به سالهای قبل از آن مدلسازی کند که دقت متوسطی دارد و وابستگی زیادی بین سالها مشاهدهمیشود که این مدلسازی را تایید میکند.
eco_lm = economic
eco_lm[is.na(eco_lm)] = 0
lm_eco = lm(data = eco_lm[,4:23], formula = `2016`~.)
summary(lm_eco)
Call:
lm(formula = `2016` ~ ., data = eco_lm[, 4:23])
Residuals:
Min 1Q Median 3Q Max
-8.421e+11 7.312e+08 7.312e+08 7.312e+08 3.098e+11
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -7.312e+08 3.566e+08 -2.050 0.040389 *
`1997` 5.884e-01 3.412e-02 17.246 < 2e-16 ***
`1998` -8.044e-01 5.901e-02 -13.632 < 2e-16 ***
`1999` -1.029e+00 6.745e-02 -15.254 < 2e-16 ***
`2000` 1.209e+00 4.660e-02 25.952 < 2e-16 ***
`2001` 1.838e-01 5.642e-02 3.259 0.001127 **
`2002` -9.292e-01 6.452e-02 -14.402 < 2e-16 ***
`2003` 9.636e-01 7.011e-02 13.745 < 2e-16 ***
`2004` -5.548e-01 5.373e-02 -10.328 < 2e-16 ***
`2005` 5.183e-01 5.018e-02 10.329 < 2e-16 ***
`2006` -7.621e-01 4.753e-02 -16.035 < 2e-16 ***
`2007` 1.100e-01 2.981e-02 3.690 0.000226 ***
`2008` 2.274e-01 2.385e-02 9.537 < 2e-16 ***
`2009` 4.899e-01 2.245e-02 21.820 < 2e-16 ***
`2010` 3.348e-01 3.159e-02 10.597 < 2e-16 ***
`2011` -2.250e-01 3.909e-02 -5.757 9.07e-09 ***
`2012` -4.286e-01 4.198e-02 -10.209 < 2e-16 ***
`2013` -3.795e-01 4.036e-02 -9.405 < 2e-16 ***
`2014` 1.823e-01 3.266e-02 5.580 2.53e-08 ***
`2015` 1.258e+00 1.743e-02 72.179 < 2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.564e+10 on 5260 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: 1
F-statistic: 5.739e+06 on 19 and 5260 DF, p-value: < 2.2e-16
۹. سوالهای ۵ تا ۷ را ابتدا برای ۲۰ شاخص سلامت سپس بر حسب ۲۰ شاخص آموزشی تکرار کنید.
جواب: این عملیات را دقیقا به همان صورت برای این دونوع داده پیاده کردهام و صرفا دادههایی موجود مرتبط با هر قسمت را شناسایی و رسم کردهام. نتایج دستهبندی نیز همانند قبل است و در زیر مشاهدهاست و باز ایران در کنار کشورهای درحال توسعه قرار میگیرد.
#Health
health = wdi_data %>%
filter(grepl('SH.DYN.AIDS.FE.ZS|SH.DYN.AIDS.ZS|SH.HIV.1524.MA.ZS|SH.HIV.1524.FE.ZS|SH.ANM.ALLW.ZS|SH.PRG.ANEM|SH.ANM.NPRG.ZS|SH.ANM.CHLD.ZS|SH.DTH.MORT|SH.DTH.IMRT|SH.VAC.TTNS.ZS|SH.DYN.MORT|SH.DYN.NMRT|SH.STA.MMRT|SH.MMR.RISK.ZS|SH.XPD.GHED.PP.CD|SH.XPD.GHED.PC.CD|SH.XPD.CHEX.PC.CD|SH.HIV.INCD|SH.HIV.0014', `Indicator Code`)) %>%
select(country_name = `Country Name`, indicator_name = `Indicator Name`, matches('^199[6-9]|^20[0-1][0-9]'))
hlth_long = melt(health, id.vars=c('country_name','indicator_name'))
iran_hlth = health %>%
filter(country_name == 'Iran, Islamic Rep.')
hlth_ir_long = melt(iran_hlth, id.vars=c('country_name','indicator_name'))
hlth_ir_long = hlth_ir_long %>%
group_by(indicator_name)
box_hlth = hlth_long %>%
group_by(indicator_name) %>%
do(
plots = ggplot(.,aes(x = variable, y = value, color = indicator_name))+
geom_boxplot() +
coord_flip() +
geom_line(data = subset(.,country_name == 'Iran, Islamic Rep.'),aes(x = variable, y = value, group = 1, color = 'Iran, Islamic Rep.'))
)
box_hlth$plots[[1]]
[[2]]
[[3]]
[[4]]
[[5]]
[[6]]
[[7]]
[[8]]
[[9]]
[[10]]
[[11]]
[[12]]
[[13]]
[[14]]
[[15]]
[[16]]
[[17]]
[[18]]
[[19]]
[[20]]
[[21]]
[[22]]
[[23]]
[[24]]
[[25]]
[[26]]
set.seed(45)
hlth_no_na = health
hlth_no_na[is.na(hlth_no_na)] = 0
hlth_no_na[,3:23] = scale(hlth_no_na[,3:23])
hlth_no_na = hlth_no_na %>%
group_by(country_name) %>%
filter(!grepl("income|Euro|Asia|only|total|members|dividend|World|America|Middle|Sub|Africa",country_name)) %>%
summarise_all(mean)
clusters = kmeans(hlth_no_na[,3:23], 3)
hlth_no_na$cluster = as.integer(clusters$cluster)
country_cluster = hlth_no_na %>%
select(country_name, cluster) %>%
filter(country_name == 'Iran, Islamic Rep.')
knitr::kable(country_cluster,"html")| country_name | cluster |
|---|---|
| Iran, Islamic Rep. | 3 |
str(clusters)List of 9
$ cluster : int [1:223] 3 3 3 3 3 3 3 3 3 3 ...
$ centers : num [1:3, 1:21] 0.3033 -0.0127 -0.0806 0.3103 -0.0129 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:3] "1" "2" "3"
.. ..$ : chr [1:21] "1996" "1997" "1998" "1999" ...
$ totss : num 24.7
$ withinss : num [1:3] 1.829 0.135 0.23
$ tot.withinss: num 2.19
$ betweenss : num 22.5
$ size : int [1:3] 6 12 205
$ iter : int 3
$ ifault : int 0
- attr(*, "class")= chr "kmeans"
hlth_pca = prcomp(hlth_no_na[,3:23], scale. = TRUE)
x = hlth_pca$x[,1:2]
hlth_no_na = bind_cols(hlth_no_na,as.data.frame(x))
clusters = kmeans(hlth_no_na[,26:27], 3)
hlth_no_na$cluster = as.integer(clusters$cluster)
country_cluster_pca_h = hlth_no_na %>%
select(country_name, cluster) %>%
filter(country_name == 'Iran, Islamic Rep.')
knitr::kable(country_cluster_pca_h,"html")| country_name | cluster |
|---|---|
| Iran, Islamic Rep. | 2 |
#Education
education = wdi_data %>%
filter(grepl('SE.ENR.PRIM.FM.ZS|SE.PRM.DURS|SE.XPD.TERT.ZS|SE.XPD.PRIM.Z|SE.XPD.SECO.ZS|SE.PRM.ENRR|SE.PRM.TCHR|SE.PRM.ENRL|SE.PRE.ENRL.TC.ZS|SE.PRE.ENRR|SE.SEC.PROG.ZS|SE.SEC.ENRL.GC|SE.PRM.PRSL.ZS|SE.SEC.AGES|SE.PRE.ENRL.TC.ZS|SE.PRM.TENR.FE|SE.SEC.ENRL|SE.PRM.NENR|SE.SEC.DURS|SE.PRM.AGES', `Indicator Code`)) %>%
select(country_name = `Country Name`, indicator_name = `Indicator Name`, matches('^199[6-9]|^20[0-1][0-9]'))
edu_long = melt(education, id.vars=c('country_name','indicator_name'))
iran_edu = education %>%
filter(country_name == 'Iran, Islamic Rep.')
edu_ir_long = melt(iran_edu, id.vars=c('country_name','indicator_name'))
edu_ir_long = edu_ir_long %>%
group_by(indicator_name)
box_edu = edu_long %>%
group_by(indicator_name) %>%
do(
plots = ggplot(.,aes(x = variable, y = value, color = indicator_name))+
geom_boxplot() +
coord_flip() +
geom_line(data = subset(.,country_name == 'Iran, Islamic Rep.'),aes(x = variable, y = value, group = 1, color = 'Iran, Islamic Rep.'))
)
box_edu$plots[[1]]
[[2]]
[[3]]
[[4]]
[[5]]
[[6]]
[[7]]
[[8]]
[[9]]
[[10]]
[[11]]
[[12]]
[[13]]
[[14]]
[[15]]
[[16]]
[[17]]
[[18]]
[[19]]
[[20]]
[[21]]
[[22]]
[[23]]
[[24]]
[[25]]
[[26]]
[[27]]
[[28]]
[[29]]
[[30]]
[[31]]
[[32]]
[[33]]
[[34]]
[[35]]
set.seed(59)
edu_no_na = education
edu_no_na[is.na(edu_no_na)] = 0
edu_no_na[,3:23] = scale(edu_no_na[,3:23])
edu_no_na = edu_no_na %>%
group_by(country_name) %>%
filter(!grepl("income|Euro|Asia|only|total|members|dividend|World|America|Middle|Sub|Africa",country_name)) %>%
summarise_all(mean)
clusters = kmeans(edu_no_na[,3:23], 3)
edu_no_na$cluster = as.integer(clusters$cluster)
country_cluster = edu_no_na %>%
select(country_name, cluster) %>%
filter(country_name == 'Iran, Islamic Rep.')
knitr::kable(country_cluster,"html")| country_name | cluster |
|---|---|
| Iran, Islamic Rep. | 2 |
str(clusters)List of 9
$ cluster : int [1:223] 3 3 3 3 3 3 3 3 3 3 ...
$ centers : num [1:3, 1:21] 0.54082 0.00305 -0.0421 0.54957 -0.00416 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:3] "1" "2" "3"
.. ..$ : chr [1:21] "1996" "1997" "1998" "1999" ...
$ totss : num 13.3
$ withinss : num [1:3] 0.344 0.496 0.211
$ tot.withinss: num 1.05
$ betweenss : num 12.3
$ size : int [1:3] 2 15 206
$ iter : int 3
$ ifault : int 0
- attr(*, "class")= chr "kmeans"
edu_pca = prcomp(hlth_no_na[,3:23], scale. = TRUE)
x = edu_pca$x[,1:2]
edu_no_na = bind_cols(edu_no_na,as.data.frame(x))
clusters = kmeans(edu_no_na[,26:27], 3)
edu_no_na$cluster = as.integer(clusters$cluster)
country_cluster_pca_edu = edu_no_na %>%
select(country_name, cluster) %>%
filter(country_name == 'Iran, Islamic Rep.')
knitr::kable(country_cluster_pca_edu,"html")| country_name | cluster |
|---|---|
| Iran, Islamic Rep. | 3 |
۱۰. کشورهای دنیا را بر حسب ۶۰ شاخص اقتصادی، سلامت و آموزش با روش سلسله مراتبی خوشه بندی کرده و دندروگرام آن را رسم نمایید. اگر داده ها بر سه دسته تقسیم شوند ایران در کدام دسته می گنجد؟
جواب: ایران در دستهی دوم همانند نتایج قبل در کنار کشورهای درحال توسعهقرار میگیرد.
ehe = bind_cols(eco_no_na,edu_no_na,hlth_no_na)
rownames(ehe) = ehe$country_name
ehe = ehe %>%
select(-indicator_name,-indicator_name1,-indicator_name2,-country_name1,-country_name2, -cluster,-cluster1,-cluster2,-PC1,-PC2,-PC11,-PC12,-PC21,-PC22,-country_name)
dist_ehe = dist(ehe, method = "euclidean")
clus_ehe = hclust(dist_ehe,method = "complete")
hcut_ehe = cutree(clus_ehe,k=3)
hcut_ehe['Iran, Islamic Rep.']Iran, Islamic Rep.
2
library(ape)
plot(as.phylo(clus_ehe), type = "fan", cex = 0.3,label.offset = 0)۱۱. سه یافته جالب از داده ها استخراج کنید.
۱۱.۱. کمترین امید به زندگی
cambodia = le_long %>%
filter(country_name == 'Cambodia')
ggplot(le_long,aes(x = variable, y = value)) +
geom_boxplot() +
coord_flip() +
geom_line(data = cambodia,aes(x = variable, y = value, group = 1, color = 'Cambodia')) +
ggtitle("Average Life Expectancy In Worldwide") +
xlab("Life Expectancy") +
ylab("Year")۱۱.۲. کمترین امید به زندگی در سالهای اخیر
sierra_leone = le_long %>%
filter(country_name == 'Sierra Leone')
ggplot(le_long,aes(x = variable, y = value)) +
geom_boxplot() +
coord_flip() +
geom_line(data = sierra_leone,aes(x = variable, y = value, group = 1, color = 'Sierra_Leone')) +
ggtitle("Average Life Expectancy In Worldwide") +
xlab("Life Expectancy") +
ylab("Year")۱۱.۳. بیشترین امید به زندگی
hong_kong = le_long %>%
filter(country_name == 'Hong Kong SAR, China')
ggplot(le_long,aes(x = variable, y = value)) +
geom_boxplot() +
coord_flip() +
geom_line(data = hong_kong,aes(x = variable, y = value, group = 1, color = 'Hong_Kong')) +
ggtitle("Average Life Expectancy In Worldwide") +
xlab("Life Expectancy") +
ylab("Year")